Expand description

Utilities for encoding and decoding frames using async/await.

Contains adapters to go from streams of bytes, AsyncRead and AsyncWrite, to framed streams implementing Sink and Stream. Framed streams are also known as transports.

use futures::TryStreamExt;
use futures::io::Cursor;
use asynchronous_codec::{LinesCodec, Framed};

let io = Cursor::new(Vec::new());
let mut framed = Framed::new(io, LinesCodec);

while let Some(line) = framed.try_next().await? {
    dbg!(line);
}

Structs

  • A cheaply cloneable and sliceable chunk of contiguous memory.
  • A simple codec that ships bytes around
  • A unique reference to a contiguous slice of memory.
  • A codec for JSON encoding and decoding using serde_cbor Enc is the type to encode, Dec is the type to decode
  • A unified Stream and Sink interface to an underlying I/O object, using the Encoder and Decoder traits to encode and decode frames.
  • The parts obtained from Framed::into_parts.
  • A Stream of messages decoded from an AsyncRead.
  • The parts obtained from (FramedRead::into_parts).
  • A Sink of frames encoded to an AsyncWrite.
  • The parts obtained from FramedWrite::into_parts.
  • A codec for JSON encoding and decoding using serde_json Enc is the type to encode, Dec is the type to decode
  • A simple Codec implementation sending your data by prefixing it by its length.
  • A simple Codec implementation that splits up data into lines.

Enums

Traits

  • Decoding of frames via buffers, for use with FramedRead.
  • Encoding of messages as bytes, for use with FramedWrite.